var mask; // 加载框
var win; // 弹出框，内部加载FormPanel
var form; // 表单
var store;	//父节点数据存储

var batchForm;	//批量导入表单
var batchWin;	//批量导入表单窗口

Ext.onReady(function() {
	mask = new Ext.LoadMask(Ext.getBody(), {
				msg : "加载中，请稍等..."
			});
	//定义一个Module
	Ext.define('ParentModule', {
        extend: 'Ext.data.Model',
        fields: [
            {type: 'string', name: 'id'},
            {type: 'string', name: 'groupName'}
        ]
    });
    var proxy = Ext.create("Ext.data.proxy.Ajax",{
		url:"user/getUserGroups.action",	//此url为查询所有父节点
		reader:{
			type: "json",
			root: "groups",	//返回的Json格式根名称
			successProperty: "success"
		}
	});
    //加载数据
    store = Ext.create('Ext.data.Store', {
        model: 'ParentModule',
        proxy: proxy
    });
    store.load();
	var parentCombo = Ext.create('Ext.form.field.ComboBox', {
		id : "groupId",
		name : "user.groupId",
        fieldLabel: '用户组',
//        renderTo: 'simpleCombo',
        displayField: 'groupName',
//        valueNotFoundText:"加载默认失败",
        valueField:'id',
        width: 320,
        labelWidth: 130,
		allowBlank : false,
        store: store,
        queryMode: 'local',
        emptyText: "不可空",
//        queryParam : "id",
        typeAhead: true
    });
    
	form = new Ext.form.Panel({
		frame : true,
		layout : {
			type : 'vbox',
			align : 'stretch'
		},
		border : false,
		bodyPadding : 10,
		fieldDefaults : {
			labelAlign : 'top',
			labelWidth : 100,
			labelStyle : 'font-weight:bold'
		},
		defaults : {
			margins : '0 0 10 0'
		},
		// url: "dev/addPower.action",
		method : "post",
		items : [{
					id : "loginName",
					xtype : 'textfield',
					fieldLabel : '用户名',
					name : "user.loginName",
					labelStyle : 'font-weight:bold;padding:0',
					allowBlank : false,
        			emptyText: "不可空",
					fieldDefaults : {
						labelAlign : 'top'
					}
				}, {
					id : "loginPasswd",
					xtype : 'textfield',
					allowBlank : false,
					name : "user.loginPasswd",
        			emptyText: "不可空",
//					vtype: "string",
					fieldLabel : '密码'
				},parentCombo],

		buttons : [{
					text : '取消',
					handler : function() {
						// this.up('form').getForm().reset();
						this.up('window').hide();
					}
				}, {
					text : '提交',
					handler : function() {
						var item = form.form;
						if (item.isValid()) {
							item.submit({
										waitMsg : '提交中，请稍等...',
										success : function(form, action) {
											win.hide(); // 隐藏窗口
											Ext.Msg.alert("提示", action.result.msg, refreshHTML);
//											window.location.reload();
										},
										failure : function(form, action) {
											win.hide(); // 隐藏窗口
											if (action != null
													&& action.result != null
													&& action.result.msg != null) {
												Ext.Msg.alert("提示",
														action.result.msg);
											} else {
												Ext.Msg.alert("提示",
														"服务器故障，请稍后重试！");
											}
										}
									});
						}
					}
				}]
	});

	win = Ext.widget('window', {
				title : '添加',
				closeAction : 'hide',
				width : 400,
				height : 300,
				minHeight : 400,
				layout : 'fit',
				resizable : true,
				modal : true,
				items : form
			});

			
	batchForm = new Ext.form.Panel({
		frame : true,
		layout : {
			type : 'vbox',
			align : 'stretch'
		},
		border : false,
		fileUpload: true,
		bodyPadding : 10,
		fieldDefaults : {
			labelAlign : 'top',
			labelWidth : 100,
			labelStyle : 'font-weight:bold'
		},
		defaults : {
			margins : '0 0 10 0'
		},
		// url: "dev/addPower.action",
		method : "post",
		items : [parentCombo,{
					id : "upload",
					xtype : 'filefield',
					fieldLabel : '选择文件',
					name : "upload",
					labelStyle : 'font-weight:bold;padding:0',
					allowBlank : false,
					buttonText: "浏览",
        			emptyText: "不可空",
					fieldDefaults : {
						labelAlign : 'top'
					}
				}],

		buttons : [{
					text : '取消',
					handler : function() {
						// this.up('form').getForm().reset();
						this.up('window').hide();
					}
				}, {
					text : '提交',
					handler : function() {
						var item = batchForm.form;
						if (item.isValid()) {
							item.submit({
										waitMsg : '提交中，请稍等...',
										success : function(batchForm, action) {
											win.hide(); // 隐藏窗口
											Ext.Msg.alert("提示", action.result.msg, refreshHTML);
//											window.location.reload();
										},
										failure : function(batchForm, action) {
											win.hide(); // 隐藏窗口
											if (action != null
													&& action.result != null
													&& action.result.msg != null) {
												Ext.Msg.alert("提示",
														action.result.msg);
											} else {
												Ext.Msg.alert("提示",
														"服务器故障，请稍后重试！");
											}
										}
									});
						}
					}
				}]
	});

	batchWin = Ext.widget('window', {
				title : '添加',
				closeAction : 'hide',
				width : 400,
				height : 300,
				minHeight : 400,
				layout : 'fit',
				resizable : true,
				modal : true,
				items : batchForm
			});
});
function refreshHTML() {
	window.location.reload();
}
/**
 * 显示添加表单
 */
function showAddForm() {
	form.form.url = "user/addUser.action"; // 是form内的form url
	win.title = "添加";
	win.show();
}

/**
 * 显示修改表单
 */
function showUpdateForm(id) {
	// 发送ajax操作，进行数据加载
	if (mask) {
		mask.show();
	}
	Ext.Ajax.timeout = 60000;
	Ext.Ajax.request({
				url : 'user/getUser.action',
				method : "post",
				params : {
					id : id
				},
				timeout : 20000,
				success : function(response) {
					var json = eval("(" + response.responseText + ")");
					if (json.user != null) {
						mask.hide();
						//将加载的数据添加到form中
						Ext.getCmp("loginName").setValue(json.user.loginName);
						Ext.getCmp("loginPasswd").setValue(json.user.loginPasswd);
						Ext.getCmp("groupId").setValue(json.user.groupId + "");
						form.form.url = "user/updateUser.action?id=" + json.user.id; // 是form内的form url
						win.title = "修改";
						win.show();
						return;
					} else {
						mask.hide();
						Ext.Msg.alert("提示", "执行失败，内部服务器错误！");
					}
				},
				failure : function(response) {
					mask.hide();
					Ext.Msg.alert("提示", "请求失败，请稍后重试！");
				}
			});
}

/**
 * 删除操作
 */
var idValue;
function deleteCmd(id) {
    idValue = id;
    Ext.MessageBox.confirm('Confirm', '确定要删除该记录吗？', DoDelete);
}
function DoDelete(btn) {
	if (btn == "yes") {
		if (mask) {
			mask.show();
		}
		Ext.Ajax.timeout = 60000;
		Ext.Ajax.request({
					url : 'user/delUser.action',
					method : "post",
					params : {
						id : idValue
					},
					timeout : 20000,
					success : function(response) {
						var json = eval("(" + response.responseText + ")");
						if (json.msg != null) {
							mask.hide();
							// alert(json.msg);
							// if(Ext.Msg.alert("提示", json.msg)) {
							window.location.reload();
							// }
							return;
						} else {
							mask.hide();
							Ext.Msg.alert("提示", "执行失败，内部服务器错误！");
						}
					},
					failure : function(response) {
						mask.hide();
						Ext.Msg.alert("提示", "请求失败，请稍后重试！");
					}
				});
	}
}

/**
 * 批量删除权限操作
 */
function batchDel() {
    Ext.MessageBox.confirm('Confirm', '确定要删除选中的记录吗？', DoBatchDelete);
}
function DoBatchDelete(btn) {
	if (btn == "yes") {
		var ids = [];
		// 获得页面上用户已经勾选的checkbox
		var chks = document.getElementsByName("chk");
		for (var i = 0; i < chks.length; i++) {
			if (chks[i].checked == true) {
				ids.push(chks[i].value);
			}
		}

		if(ids.length == 0) {
			Ext.Msg.alert("提示","请选中要删除的记录！");
			return;
		}
		if (mask) {
			mask.show();
		}
		Ext.Ajax.timeout = 60000;
		Ext.Ajax.request({
					url : 'user/batchDelUser.action',
					method : "post",
					params : {
						ids : ids
					},
					timeout : 20000,
					success : function(response) {
						var json = eval("(" + response.responseText + ")");
						if (json.msg != null) {
							mask.hide();
							// alert(json.msg);
							// if(Ext.Msg.alert("提示", json.msg)) {
							window.location.reload();
							// }
							return;
						} else {
							myMask.hide();
							Ext.Msg.alert("提示", "执行失败，内部服务器错误！");
						}
					},
					failure : function(response) {
						myMask.hide();
						Ext.Msg.alert("提示", "请求失败，请稍后重试！");
					}
				});
	}
}

/**
 * 批量导入用户数据（excel表格按固定格式）
 */
function showBatchAddForm() {
	batchForm.form.url = "user/batchAddUser.action"; // 是form内的form url
	batchWin.title = "批量导入";
	batchWin.show();
}

/**
 * 验证表单是否可提交
 */
function check() {
	return true;
}

/**
 * 跳页
 */
function skipPage(value) {
	if(value <= 0) {
		alert("当前为第一页！");
		return;
	}
	if(value > document.getElementById("pageBean.totalPage").value) {
		alert("当前为最后一页！");
		return;
	}
	document.getElementById("pageBean.currPage").value = value;
	document.forms[0].submit();
}
